#ifndef MODELCOMPOSITE_H_
#define MODELCOMPOSITE_H_

#include "Model.h"

class ModelComposite : public Model
{
public:
    ModelComposite();
    virtual ~ModelComposite();

    virtual void traverse(const Event& event);
    virtual void collectChanges(NetworkEvents& events);

    void addChild(Model* element);
    void eraseChildren();
    void removeChild(long idToRemove);

private:
    typedef std::list<ModelPtr> Children;
    Children m_children;
};

#endif
